home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / pd / serien / purity / nr.46 / quicksort / quicksortoptim.p < prev    next >
Text File  |  1995-03-27  |  848b  |  55 lines

  1. PROGRAM quicksort;  { sørtieren durch Zerlegen }
  2.  
  3. { øptimiert für MaxønPascal }
  4. { cøding døne by Røgersøft  }
  5.  
  6. CONST n=10;
  7.  
  8. VAR feld:ARRAY[1..n] OF real;
  9.  
  10. PROCEDURE quicksort(links,rechts:INTEGER);
  11.  VAR i,j:INTEGER;
  12.        m:REAL;
  13.  BEGIN
  14.   IF links<rechts THEN
  15.   BEGIN
  16.    m:=feld[links];
  17.    i:=links;
  18.    j:=rechts;
  19.    WHILE i<=j DO
  20.    BEGIN
  21.     WHILE feld[i]<m DO inc(i);
  22.     WHILE feld[j]>m DO DEC(j);
  23.     IF i<=j THEN 
  24.      BEGIN
  25.       exchange(feld[i],feld[j]);
  26.       inc(i);
  27.       dec(j);
  28.      END;
  29.    END;
  30.    quicksort(links,j);
  31.    quicksort(i,rechts);
  32.   END;
  33.  END; 
  34.  
  35.   
  36. PROCEDURE eingabe;
  37. var i:INTEGER;
  38.  BEGIN
  39.   writeln('Bitte ',n,' Elemente eingeben');
  40.   FOR i:=1 TO n DO readln(feld[i]);
  41.  END;
  42.  
  43. PROCEDURE ausgabe;
  44.  var i:INTEGER;
  45.   BEGIN
  46.    FOR i:=1 TO n DO writeln(feld[i]);
  47.   END;  
  48.  
  49.  
  50. BEGIN
  51.  eingabe;
  52.  quicksort(1,n);
  53.  ausgabe;
  54. END.
  55.